String.prototype.trim = function() { return this.replace(/^\s+|\s+$/, ''); };
//Auto resize image:
function resizeImage(img,nwsize,nhsize)
{
	//var img = document.getElementById(id);		
	var nWidth=img.width;
	var	nHeight=img.height;	
	nScale = nWidth/nHeight;		
	
	var imgWidth=img.width;
	var imgHeight=img.height;
	
	wScale = imgWidth/nwsize;
	hScale = imgHeight/nhsize;
	
	if(wScale >= 1 || hScale >= 1){
		if(wScale > hScale){
			nWidth = nwsize;
			nHeight = imgHeight/wScale;
			nMargin = (nhsize - nHeight)/2;
			
			img.width = nWidth;
			img.height = nHeight;
			img.style.margin = nMargin + 'px 0px';
		}
		else{
			nHeight = nhsize;
			nWidth = imgWidth/hScale;
			nMargin = (nwsize - nWidth)/2;

			img.width = nWidth;
			img.height = nHeight;
			img.style.margin = '0px '+ nMargin + 'px';
		}
	}
	else{
		wMargin = (nwsize-imgWidth)/2;
		hMargin = (nhsize-imgHeight)/2;
		
		img.style.margin = hMargin+'px '+ wMargin + 'px';
	}
	
}

	/*
	Written by Jonathan Snook, http://www.snook.ca/jonathan
	Add-ons by Robert Nyman, http://www.robertnyman.com
	*/
	
	function getElementsByClassName(oElm, strTagName, strClassName){
		var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
		var arrReturnElements = new Array();
		strClassName = strClassName.replace(/\-/g, "\\-");
		var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
		var oElement;
		for(var i=0; i<arrElements.length; i++){
			oElement = arrElements[i];
			if(oRegExp.test(oElement.className)){
				arrReturnElements.push(oElement);
			}
		}
		return (arrReturnElements)
	}
	
	function wordWrap(classname){
	/******
	* wordWrap to firefox for big words
	* Creative Commons license * Version: 1.0 - 26/04/2006
	* Autor: Micox - Náiron J.C.G - micoxjcg@yahoo.com.br - http://elmicoxcodes.blogspot.com
	* Uso: call the function on onload of body element.
	* put the class "word-wrap" on elements to wordwrap
	*******/
	    var larg_total,larg_carac,quant_quebra,pos_quebra;
	    var elementos,quem, caracs, texto, display_orig;
	    
	    //elementos = document.getElementsByTagName("p")
	    elementos = getElementsByClassName(document, "*", classname)
	    
	    for(var i=0; i<elementos.length;i++){
	        quem = elementos[i];
	        
	        quem.innerHTML = String(quem.innerHTML).replace(/ /g,"Ø")
	        texto = String(quem.innerHTML)
	        
	        quem.innerHTML = " "
	        
	        display_orig = quem.style.display;
	        quem.style.display="block";
	        larg_oficial = quem.offsetWidth;
	        //alert("oficial: " + larg_oficial)
	        //alert("display " + quem.style.display)
	        if(!document.all) quem.style.display="table";
	        //alert("display " + quem.style.display)
	        quem.innerHTML = texto;
	        larg_total = quem.offsetWidth;
	        //alert("total: " + larg_total)
	        
	        pos_quebra = 0;
	        caracs = texto.length;
	        texto = texto.replace(/Ø/g," ")
	        larg_carac = larg_total / caracs
	        if(larg_total>larg_oficial){
	            quant_quebra = parseInt(larg_oficial/larg_carac)
	            quant_quebra = quant_quebra - (parseInt(quant_quebra/6)) //quanto menor o num, maior a garantia;
	            quem.innerHTML = ""
				if(quant_quebra > 0){
					while(pos_quebra<=caracs){
						quem.innerHTML = quem.innerHTML + texto.substring(pos_quebra,pos_quebra + quant_quebra) + " "
						pos_quebra = pos_quebra + quant_quebra;
					}
				}
	        }else{
	            quem.innerHTML = texto;
	        }//end if do larg_total>larg_oficial
	        quem.style.display = display_orig;
	    }//end for loop dos elementos
	}

	function event_delete_item(id, caption){
		$("#item_"+id).attr('checked', 'checked');
		//$("form[name='event_item_form']").submit(function(){return true;});
		if (!confirm("Bạn chắc chắn muốn xóa "+caption+" này được chọn khỏi sự kiện?")){
			$("#item_"+id).removeAttr('checked');
			return;
		}
		document.getElementById("event_item_form").submit();

	}
	function event_delete_item(id){
		$("#item_"+id).attr('checked', 'checked');
		//$("form[name='event_item_form']").submit(function(){return true;});
		if (!confirm("Bạn chắc chắn muốn xóa item này được chọn khỏi sự kiện?")){
			$("#item_"+id).removeAttr('checked');
			return;
		}
		document.getElementById("event_item_form").submit();

	}

	function ShowHideArea(id) {
		// Muc dich: Thay doi class tieu de + an/hien phan noi dung.
		t_id = id; // ID cua phan tieu de.
		c_id = id.replace('t-',''); // ID cua phan noi dung.
		
		//convert to element:
		t_id = document.getElementById(t_id);
		c_id = document.getElementById(c_id);
		
		if ($("#" + id).attr('src').match(/bulletExpand/)) { //neu dang mo tieu de
			$(c_id).hide();
			$('#' + id).attr("src", "/images/bulletCollapse.jpg"); // thi dong lai
		} else {
			$(c_id).show();
			$('#' + id).attr("src", "/images/bulletExpand.jpg"); // neu khong thi mo lai
		}
		// An hien phan noi dung tu dong:
		
	}
	
	


var event_common=
{
	authorList: "",
	shareURL: "",		
	commentPage: 0,
	posting: false,
	addedMyTT: false,
	promotedClip: new Array(),
	animId: 0,
	currAnim: 0,
	alertLogin: function(){
		alert("Bạn cần đăng nhập để thực hiện được chức năng này");
		return false;
	},
	toggleDesc: function(){
		if ($("#clip_full_desc").css('display')=='none')
		{
			$("#clip_full_desc").show();
			$("#clip_short_desc").hide();
			$("#clip_toggle_desc").html('thu gọn');
		}
		else
		{
			$("#clip_full_desc").hide();
			$("#clip_short_desc").show();
			$("#clip_toggle_desc").html('xem hết');
		}
		return false;
	},
	
	getCategory: function()
	{
		if ($("#c_cungloai").html().trim()!="")
		{
			return;
		}
		$.ajax({
		   url: event_common.categoryList,
		   beforeSend: function(req){
				$("#ctl_loading_category").show();
		   },
		   error: function(req, status, info){
		   	   alert("Có lỗi khi lấy dữ liệu. Hãy thử lại lần khác");
		   },
		   success: function(data, status){
		   	   $("#c_cungloai").html(data);
		   	   $("#c_cungloai").show();
		   	   $("#t_cungloai").removeClass("title_none");
		   	   $("#t_cungloai").addClass("title_click");
		   },
		   complete: function(res, s){
				$("#ctl_loading_category").hide();
			}
		});
	},
	
	
	filterUrl: function(type){
		$('#filterBoxContent a.filter').attr('href', function(index){

			if(order=='c'+(index+1)){
				$(this).addClass('filterOn');
			}
			return '/'+type+'/'+cid+'/'+filter+'/c'+(index+1);
		});
	},
	insertSymbol: function(symbol){
		var obj=$('#comment_content').get(0);
		if (document.selection)
		{
			obj.focus();
			sel = document.selection.createRange();
			sel.text = symbol;
		}
		else if (obj.selectionStart || obj.selectionStart == 0)
		{
			var startPos = obj.selectionStart;
			var endPos = obj.selectionEnd;
			obj.value = obj.value.substring(0, startPos)
						+ symbol
						+ obj.value.substring(endPos, obj.value.length);
		} 
		else
		{
			obj.value += symbol;
		}
	},
	replyInvited: function(eid){
		var st=0;
		var message="";
		$.ajax({
			   type: "POST",
			   url: "/event/attending/"+eid,
			   data: $("#attend_form").serialize(),
			   beforeSend: function(req){
                	$("#attend_loader").show();
                	$("#attend_div").hide();
				   this.posting=true;
			   },
			   error: function(req, status, info){
			   	   alert("Có lỗi khi cập nhật.");
			   },
			   success: function(msg, status){
				   st = parseInt(msg);
				   if(st==-1){
					   alert('Sự kiện này đã bị huỷ');
					   window.location="/event";
				   }
				   else if(st>0){
					   if(st==2){
						   message = "Bạn đã đồng ý tham gia sự kiện";
						   window.location="/event/detail/"+eid;
					   }
					   else if(st==5){
						   message = "Bạn đã xác nhận có thể tham gia sự kiện";
					   }
					   else if(st==6){
						   message = "Bạn đã xác nhận không tham gia sự kiện.";
					   }
					   if(message != "")
						   $("#attend_div").html("<br /><em>"+message+"</em>");
				   }
			   },
			   complete: function(res, s){
				   $("#attend_loader").hide();
				   $("#attend_div").show();
				   this.posting=false;
			    }
		});
	},
	joinEvent: function(eid, focusThis){
		if(confirm('Bạn có chắc chắn tham gia sự kiện này?')){
			var st=0;
			var html_tmp = "";
			$.ajax({
				   type: "POST",
				   url: "/event/join/"+eid,
				   beforeSend: function(req){
	                	$("#manage_loader").show();
	                	$("#manage_div").hide();
					   this.posting=true;
				   },
				   error: function(req, status, info){
				   	   alert("Có lỗi khi tham gia sự kiện, bạn hãy vui lòng thử lại.");
				   },
				   success: function(msg, status){
					   st = parseInt(msg);
					   if(st==-1){
						   alert('Sự kiện này đã bị huỷ');
						   html_tmp = $("div#div_event_"+eid).html();
						   if(html_tmp!=""){
							   $("div#div_event_"+eid).hide();
						   }
						   if(focusThis)
							   location.href = "/event";
					   }
					   else if(st==-2){
						   alert("Bạn phải cần đăng nhập thì mới được tham gia sự kiện.");
						   location.href = "/user/login?ref=/event/detail/"+eid;
					   }
					   else if(st==2){
						   alert('Chào mừng bạn đã tham gia sự kiện!');
						   html_tmp = $("div#div_event_"+eid).html();
						   if(html_tmp!=""){
							   $("div#div_event_"+eid).hide();
						   }
						   
						   if(focusThis)
							   location.href="/event/detail/"+eid;
						   
					   }
				   },
				   complete: function(res, s){
					   $("#manage_loader").hide();
					   $("#manage_div").show();
					   this.posting=false;
				    }
			});
		}
	},
	maybeJoinEvent: function(eid, focusThis){
		if(confirm('Bạn có chắc chắn xác nhận có thể tham gia sự kiện này?')){
			var st=0;
			var html_tmp = "";
			$.ajax({
				   type: "POST",
				   url: "/event/maybejoin/"+eid,
				   beforeSend: function(req){
	                	$("#manage_loader").show();
	                	$("#manage_div").hide();
					   this.posting=true;
				   },
				   error: function(req, status, info){
				   	   alert("Có lỗi khi xác nhận lời mời tham gia sự kiện, bạn hãy vui lòng thử lại.");
				   },
				   success: function(msg, status){
					   st = parseInt(msg);
					   if(st==-1){
						   alert('Sự kiện này đã bị huỷ');
						   html_tmp = $("div#div_event_"+eid).html();
						   if(html_tmp!=""){
							   $("div#div_event_"+eid).hide();
						   }
						   if(focusThis)
							   location.href = "/event";
					   }
					   else if(st==-2){
						   event_member.alertLogin();
						   location.href = "/user/login?ref=/event/detail/"+eid;
					   }
					   else if(st==5){
						   alert('Bạn đã xác nhận có thể tham gia sự kiện!');
						   html_tmp = $("div#div_event_"+eid).html();
						   if(html_tmp!=""){
							   $("div#div_event_"+eid).hide();
						   }
						   
						   if(focusThis)
							   location.href="/event/detail/"+eid;
						   
					   }
				   },
				   complete: function(res, s){
					   $("#manage_loader").hide();
					   $("#manage_div").show();
					   this.posting=false;
				    }
			});
		}
	},
	notJoinEvent: function(eid, focusThis){
		if(confirm('Bạn có chắc chắn xác nhận không tham gia sự kiện này?')){
			var st=0;
			var html_tmp = "";
			$.ajax({
				   type: "POST",
				   url: "/event/notjoin/"+eid,
				   beforeSend: function(req){
	                	$("#manage_loader").show();
	                	$("#manage_div").hide();
					   this.posting=true;
				   },
				   error: function(req, status, info){
				   	   alert("Có lỗi khi xác nhận không tham gia sự kiện, bạn hãy vui lòng thử lại.");
				   },
				   success: function(msg, status){
					   st = parseInt(msg);
					   if(st==-1){
						   alert('Sự kiện này đã bị huỷ');
						   html_tmp = $("div#div_event_"+eid).html();
						   if(html_tmp!=""){
							   $("div#div_event_"+eid).hide();
						   }
						   if(focusThis)
							   location.href = "/event";
					   }
					   else if(st==-2){
						   event_member.alertLogin();
						   location.href = "/user/login?ref=/event/detail/"+eid;
					   }
					   else if(st==6){
						   alert('Bạn đã xác nhận không tham gia sự kiện!');
						   html_tmp = $("div#div_event_"+eid).html();
						   if(html_tmp!=""){
							   $("div#div_event_"+eid).hide();
						   }
						   
						   if(focusThis)
							   location.href="/event/detail/"+eid;
						   
					   }
				   },
				   complete: function(res, s){
					   $("#manage_loader").hide();
					   $("#manage_div").show();
					   this.posting=false;
				    }
			});
		}
	},
	leaveEvent: function(eid, focusThis){
		if(confirm('Bạn có chắc chắn ra khỏi sự kiện này?')){
			var st=0;
			var html_tmp = "";
			$.ajax({
				   type: "POST",
				   url: "/event/leave/"+eid,
				   beforeSend: function(req){
	                	$("#manage_loader").show();
	                	$("#manage_div").hide();
					   this.posting=true;
				   },
				   error: function(req, status, info){
				   	   alert("Có lỗi khi ra khỏi sự kiện, bạn hãy vui lòng thử lại.");
				   },
				   success: function(msg, status){
					   st = parseInt(msg);
					   
					   if(st==-1){
						   alert('Sự kiện này đã bị huỷ');
						   html_tmp = $("div#div_event_"+eid).html();
						   if(html_tmp!=""){
							   $("div#div_event_"+eid).hide();
						   }
						   if(focusThis)
							   location.href = "/event";
					   }
					   else if(st==-2){
						   alert("Bạn phải cần đăng nhập thì mới được rời khỏi sự kiện.");
						   location.href = "/user/login?ref=/event/detail/"+eid;
					   }
					   else if(st==0){
						   alert('Bạn đã ra khỏi sự kiện!');
						   
						   html_tmp = $("div#div_event_"+eid).html();
						   if(html_tmp!=""){
							   $("div#div_event_"+eid).hide();
						   }
						   if(focusThis){
							   location.href="/event/detail/"+eid;
						   }
					   }
				   },
				   complete: function(res, s){
					   $("#manage_loader").hide();
					   $("#manage_div").show();
					   this.posting=false;
				    }
			});
		}
	},
	requestEvent: function(eid){
		if(confirm('Bạn có chắc chắn gửi yêu cầu muốn tham gia sự kiện này?')){
			var st=0;
			$.ajax({
				   type: "POST",
				   url: "/event/request/"+eid,
				   beforeSend: function(req){
	                	$("#manage_loader").show();
	                	$("#manage_div").hide();
					   this.posting=true;
				   },
				   error: function(req, status, info){
				   	   alert("Có lỗi khi ra khỏi sự kiện, bạn hãy vui lòng thử lại.");
				   },
				   success: function(msg, status){
					   st = parseInt(msg);
					   
					   if(st==-1){
						   alert('Sự kiện này đã bị huỷ');
						   location.href = "/event";
					   }
					   else if(st==-2){
						   alert("Bạn phải cần đăng nhập thì mới được rời khỏi sự kiện.");
						   location.href = "/user/login?ref=/event/detail/"+eid;
					   }
					   else if(st==1){
						   alert("Yêu cầu của bạn đã được gửi tới người quản trị sự kiện.");
						   $("#manage_div").html("");
					   }
				   },
				   complete: function(res, s){
					   $("#manage_loader").hide();
					   $("#manage_div").show();
					   this.posting=false;
				    }
			});
		}
	}
	
}

var event_member = 
{
		posting: false,
		alertLogin: function(){
			alert("Bạn cần đăng nhập để thực hiện được chức năng này");
			return false;
		},
		checkPending: function(){
			var k=parseInt($('#pending_count').html());
			if (k==0)
			{
				alert("Bạn không có ai trong danh sách muốn mời tham gia sự kiện");
			}
			return (k>0);
		},
		updatePendingCounter: function(c){
			var k=parseInt($('#pending_count').html())+c;
			$('#pending_count').html(k.toString());
		},
		addFriendList: function(uid, u_name, eid){
			
			var user_list=$('#friends_list')[0];
			var childEl=user_list.childNodes[0];
			var el=document.createElement('span');
			el.id="friend_" + uid;
			el.setAttribute('u_id', uid);
			el.setAttribute('u_name', u_name);
			el.innerHTML='<input u_id="'+ uid + '" name="' + uid + '" u_name="' + u_name + '" type="checkbox" onclick="event_member.addPending('+eid+', '+uid+',\''+escape(u_name)+'\')"><label>' + u_name + '</label><br>';
			if (childEl)
			{
				user_list.insertBefore(el, childEl);
			}
			else
			{
				user_list.appendChild(el);
			}
		},
		removePending: function(eid, uid, u_name){
			rem_url="/event/invite/"+eid+"/" + uid + "/?remove=1";
			u_name=unescape(u_name);
			$.ajax({
				type: "POST",
				url: rem_url,
				complete: function(req, s){
					if (s=="success")
					{
						var elList=$('#invitations')[0];
						elList.removeChild($('#p_' + uid)[0]);
						event_member.addFriendList(uid, u_name, eid);
						event_member.updatePendingCounter(-1);
					}
					else
					{
						alert("Có lỗi trong quá trình xử lý, bạn vui lòng thực hiện lại sau");
					}
				}
			});
		},
		addPending: function(eid, uid, u_name){
			add_url="/event/invite/"+eid+"/" + uid + "/?add=1";
			profile_url="/home/" + u_name;
			u_name=unescape(u_name);
			$.ajax({
				type: "POST",
				url: add_url,
				complete: function(req, s){
					if (s=="success")
					{
						eval('status = ' + parseInt(req.responseText) + ';');
						if (status==1)
						{
							var elList=$('#invitations')[0];
							li=document.createElement("li");
							li.id="p_"+uid;
							nameEl=document.createElement("div");
							nameEl.className='name_row';
							nameEl.innerHTML='<a href="' + profile_url + '">'+u_name+'</a>';
							removeEl=document.createElement("div");
							removeEl.innerHTML='<a href="#" id="'+ uid +'" u_name="'+u_name+'" onclick="event_member.removePending('+eid+', ' + uid + ', \'' + u_name + '\'); return false;">Loại bỏ</a>';
							li.appendChild(nameEl);
							li.appendChild(removeEl);
							elList.insertBefore(li,elList.firstChild);
							$("#friend_" + uid).remove();
							event_member.updatePendingCounter(1);
						}
						else if (status==0)
						{
							alert("Bạn (hoặc ai đó) đã gửi thư mời đến " + u_name);
						}
					}
					else
					{
						alert("Có lỗi trong quá trình thực hiện. Xin bạn vui lòng làm lại lần khác");
					}
				}
			});
		},
		removeAdmin: function(eid, uid, u_name, me){
			var strConfirm = 'Bạn có chắc chắn huỷ quyền quản trị của thành viên '+u_name+'?';
			if(me==1)
				strConfirm = "Bạn có chắc chắn huỷ quyền quản trị sự kiện của chính mình?";
			if(confirm(strConfirm)){
				//var st=0;
				$.ajax({
					   type: "POST",
					   url: "/event/removeadmin/"+eid+"/"+uid,
					   beforeSend: function(req){
		                	$("#member_proccess").show();
		                	$("#member_manage_link_"+uid).hide();
						   this.posting=true;
					   },
					   error: function(req, status, info){
						   alert("Có lỗi trong quá trình thực hiện yêu cầu của bạn");
					   },
					   success: function(response, status){
						   eval('res=' + response + ';');
						   if (res['status']==1){
							   if (me==1){
								   window.location.href="/event/detail/"+eid;
							   }
							   else
								   $("#member_manage_link_"+uid).html(res['el']);
						   }
						   else{
							   alert(res['msg']);
						   }
					   },
					   complete: function(res, s){
						   $("#member_proccess").hide();
						   $("#member_manage_link_"+uid).show();
						   this.posting=false;
					    }
				});
			}
		},
		makeAdmin: function(eid, uid, u_name){
			if(confirm('Bạn có chắc chắn phân quyền quản trị cho thành viên '+u_name+'?')){
				$.ajax({
					   type: "POST",
					   url: "/event/makeadmin/"+eid+"/"+uid,
					   beforeSend: function(req){
		                	$("#member_proccess").show();
		                	$("#member_manage_link_"+uid).hide();
						   this.posting=true;
					   },
					   error: function(req, status, info){
						   alert("Có lỗi trong quá trình thực hiện yêu cầu của bạn");
					   },
					   success: function(response, status){
						   eval('res=' + response + ';');
						   if (res['status']==1)
							   $("#member_manage_link_"+uid).html(res['el']);
						   else{
							   alert(res['msg']);
						   }
					   },
					   complete: function(res, s){
						   $("#member_proccess").hide();
						   $("#member_manage_link_"+uid).show();
						   this.posting=false;
					    }
				});
			}
		},
		removeMember: function(eid, uid, u_name, me, admin){
			var msg="Bạn chắc chắn loại " + u_name + " ra khỏi sự kiện";
			if (me==1)
			{
				msg="Bạn tự loại mình ra khỏi sự kiện, bạn sẽ không thực hiện được các chức năng khác trên sự kiện nữa";
			}
			else if (admin==1)
			{
				msg=msg + u_name + " đang là admin cuả sự kiện. Nếu sự kiện không còn admin, quyền này sẽ được mời một thành viên bất kỳ của sự kiện ứng cử";
			}
			if(confirm(msg)){
				$.ajax({
					   type: "POST",
					   url: "/event/removemember/"+eid+"/"+uid,
					   beforeSend: function(req){
		                	$("#member_proccess").show();
		                	$("#member_manage_link_"+uid).hide();
						   this.posting=true;
					   },
					   error: function(req, status, info){
						   alert("Có lỗi trong quá trình thực hiện yêu cầu của bạn");
					   },
					   success: function(response, status){
						   eval('res=' + response + ';');
						   if (res['status']==1){
								if (me==1)
								{
									window.location.href="/event/detail/"+eid;
								}
								else{
									$('#member_' + uid).remove();
									event_member.addFriendList(uid, u_name, eid);
								}
						   }
						   else{
							   alert(res['msg']);
						   }
					   },
					   complete: function(res, s){
						   $("#member_proccess").hide();
						   $("#member_manage_link_"+uid).show();
						   this.posting=false;
					    }
				});
			}
		}
}




var event_area = 
{     
    cities: new Array(),
    districts: new Array(),
    
    getCities: function()
    {
        countryID = $("#country").val();
        if (this.cities[countryID] != undefined){
            $("#city").html(this.cities[countryID]);
            return false;
        }
        $.ajax({
            type: "POST",
            url: "/event/city/get/" + countryID,
            complete: function(res, s){
                $("#city").html(res.responseText);
                this.cities[countryID] = res.responseText;
            }
        });        
        return false;        
    },
    getDistricts: function()
    {
        cityID = $("#city").val();
        if (this.districts[cityID] != undefined){
            $("#district").html(this.districts[cityID]);
            return false;
        }
        $.ajax({
            type: "POST",
            url: "/event/district/get/" + cityID,
            complete: function(res, s){
                $("#district").html(res.responseText);
                this.districts[cityID] = res.responseText;
            }
        });        
        return false;        
    }
}